﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using DAL;
using Business.Classes;

namespace UI
{
    public partial class Cadastro : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            pnFalha.Visible = false;
            pnSucesso.Visible = false;
            btLogIn.Visible = false;
        }

        protected void btOK_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime dataNascimento = new DateTime();
                bool falha = false;
                //Validar a Data de Nascimento
                try
                {
                    dataNascimento = new DateTime(Convert.ToInt32(txtAno.Text), Convert.ToInt32(txtMes.Text), Convert.ToInt32(txtDia.Text));
                }
                catch (Exception)
                {
                    falha = true;
                    pnFalha.Visible = true;
                    lbMsgFalha.Text = "Data de nascimento inválida!";
                }
                if (!falha)
                {
                    Usuario newUser = new Usuario()
                    {
                        nome = txtNome.Text,
                        email = txtEmail.Text,
                        senha = txtSenha.Text,
                        login = txtLogin.Text,
                        pontos = 0,
                        dataNascimento = dataNascimento,
                        dataCadastro = DateTime.Now,
                        idPerfilUsuario = 2//membro
                    };

                    UsuarioBusiness usuarioBusiness = new UsuarioBusiness();
                    
                    if(usuarioBusiness.jahExisteEsseUsuario(newUser.login))
                    {
                        throw new InvalidOperationException("Esse login já está em uso! ;/");
                    };
                    usuarioBusiness.InsertUsuario(newUser);

                    pnSucesso.Visible = true;
                    lbMsgSucesso.Text = "Usuário Cadastrado com Sucesso!";

                    limpaCampos();
                    btLogIn.Visible = true;
                }
            }
            catch (Exception ex)
            {
                pnFalha.Visible = true;
                lbMsgFalha.Text = "Falha ao tentar cadastar usuário. <br/>Detalhe: " + ex.Message;
            }
            
        }

        public void limpaCampos()
        {
            txtNome.Text = string.Empty;
            txtEmail.Text = string.Empty;
            txtLogin.Text = string.Empty;
            txtDia.Text = string.Empty;
            txtMes.Text = string.Empty;
            txtAno.Text = string.Empty;
        }

        protected void btLogIn_Click(object sender, EventArgs e)
        {

            Response.Redirect(new Controlador.Controladora().GetPageLogin());
           
        }
    }
}
